import { IPSAppFunc } from '../../app/func/ipsapp-func';
import { IPSNavigateParamContainer } from '../ipsnavigate-param-container';
import { IPSLayoutContainer } from '../layout/ipslayout-container';
import { IPSLayoutItem } from '../layout/ipslayout-item';
import { IPSMenuItem } from './ipsmenu-item';
import { IPSSysCss } from '../../res/ipssys-css';
import { IPSSysImage } from '../../res/ipssys-image';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';

/**
 *
 * 子接口类型识别属性[itemType]
 * 继承父接口类型值[APPMENUREF|MENUITEM|SEPERATOR]
 * @export
 * @interface IPSAppMenuItem
 */
export interface IPSAppMenuItem
  extends IPSMenuItem,
    IPSLayoutContainer,
    IPSLayoutItem,
    IPSNavigateParamContainer {
  /**
   * 菜单项状态
   * @description 值模式 [菜单项状态] {1：新功能、 2：热门功能 }
   * @type {( number | 1 | 2)}
   * @default 0
   */
  appMenuItemState: number | 1 | 2;

  /**
   * 计数器标识
   * @type {string}
   */
  counterId: string;

  /**
   * 项直接样式
   * @type {string}
   */
  cssStyle: string;

  /**
   * 项数据
   * @type {string}
   */
  data: string;

  /**
   * 动态样式表
   * @type {string}
   */
  dynaClass: string;

  /**
   * 菜单项通知标记
   * @type {string}
   */
  informTag: string;

  /**
   * 菜单项通知标记2
   * @type {string}
   */
  informTag2: string;

  /**
   * 应用功能
   *
   * @type {IPSAppFunc}
   */
  getPSAppFunc(): IPSAppFunc | null;

  /**
   * 菜单项集合
   *
   * @type {IPSAppMenuItem[]}
   */
  getPSAppMenuItems(): IPSAppMenuItem[] | null;

  findPSAppMenuItem(objKey: any): IPSAppMenuItem | null;

  /**
   * 系统样式表
   *
   * @type {IPSSysCss}
   */
  getPSSysCss(): IPSSysCss | null;

  /**
   * 系统图片
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 前端应用插件
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 标题栏关闭模式
   * @description 值模式 [分组标题栏关闭模式] {0：无关闭、 1：启用关闭（默认打开）、 2：启用关闭（默认关闭） }
   * @type {( number | 0 | 1 | 2)}
   * @default 0
   */
  titleBarCloseMode: number | 0 | 1 | 2;

  /**
   * 禁用关闭
   * @type {boolean}
   * @default false
   */
  disableClose: boolean;

  /**
   * 打开时隐藏边栏
   * @type {boolean}
   * @default false
   */
  hideSideBar: boolean;

  /**
   * 默认打开
   * @type {boolean}
   * @default false
   */
  openDefault: boolean;

  /**
   * 分隔栏
   * @type {boolean}
   * @default false
   */
  seperator: boolean;

  /**
   * 启用
   * @type {boolean}
   * @default true
   */
  valid: boolean;
}
